package persistenciaDAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import conexaoDAO.Conexao;
import modelo.Filme;
import modelo.Usuario;

public class FilmeDAO {
    private static boolean status = false;
    private static Connection conn = Conexao.getConnection();
    private static List<Filme> list = new ArrayList<Filme>();
    

    
    public static boolean insereFilme(Filme filme){
     try{
            
            String SQL = "INSERT INTO filme (nome, diretor , genero, link, data, imagem ) VALUES (?,?,?,?,now(),?)";
            PreparedStatement ps = conn.prepareStatement(SQL);

            ps.setString(1, filme.getNome());
            ps.setString(2, filme.getDiretor());
            ps.setString(3, filme.getGenero());
            ps.setString(4, filme.getLink());
            ps.setString(5, filme.getImagem());
            ps.executeUpdate();
            status = true;
        }catch(SQLException ex){
            System.out.println("falha sql exeption "+ ex.getMessage());
        }catch(Exception e){
           System.out.println("falha exeption " +e.getMessage());        
        } 
        finally{
        	Conexao.close();
                return status;
        }
    }
    public static boolean deletaFilme(Filme filme){
    try{
            PreparedStatement ps = null;
            
            String SQL = "DELETE FROM filme WHERE id =?";
            
            
            ps = conn.prepareStatement(SQL);
            
            ps.setInt(1, filme.getId());

            
            ps.executeUpdate();
            status = true;
        }catch(SQLException ex){
            System.out.println("falha sql exeption "+ ex.getMessage());
        }catch(Exception e){
           System.out.println("falha exeption " +e.getMessage());        
        } 
        finally{
        	Conexao.close();
                return status;
        }

    }
    public static boolean alteraFilme(Filme filme){
    try{
            PreparedStatement ps = null;
            
            String SQL = "UPDATE filme SET nome = ? WHERE id = ?";
            
            ps = conn.prepareStatement(SQL);
            
            ps.setString(1,filme.getNome());
            ps.setInt(2, filme.getId());
            ps.executeUpdate();
            status = true;
            

        }catch(SQLException ex){
            System.out.println("falha sql exeption "+ ex.getMessage());
        }catch(Exception e){
           System.out.println("falha exeption " +e.getMessage());        
        } 
    finally{
    	Conexao.close();
        return status;
    }
    }

     public static List pesquisaFilme (String like){
         conn = Conexao.getConnection();
         try{
            PreparedStatement ps = null;
            ResultSet rs = null;
            ps = conn.prepareStatement("SELECT nome, diretor , genero, link, imagem, id FROM usuario WHERE nome LIKE '%"+like+"%' OR diretor LIKE '%"+like+"%'");
            rs = ps.executeQuery();
            while(rs.next()){
            String nome = rs.getString("nome");
            String diretor = rs.getString("diretor");
            String genero = rs.getString("genero");
            String link = rs.getString("link");
            String imagem = rs.getString("imagem");
            int id = rs.getInt("id");
            list.add(new Filme(nome, diretor, genero, link, imagem, id));
            }
            }
            catch(SQLException ex){
            System.out.println("falha sql exeption "+ ex.getMessage());
        }catch(Exception e){
           System.out.println("falha exeption " +e.getMessage());        
        } 
            finally{
     return list;
            }
     }
     
     
}
